﻿using Microsoft.Xna.Framework;

namespace Ah.Testudin.Engine.Events
{
    public interface IEventManager
    {
        void Initialize();

        void RegisterEventHandler(
            EventType eventType,
            TestudinEventHandler eventHandler);

        void UnregisterEventHandler(
            EventType eventType,
            TestudinEventHandler eventHandler);

        void QueueEvent(ITestudinEvent testudinEvent);

        void TriggerEvent(ITestudinEvent testudinEvent);

        void Update(GameTime gameTime);
    }
}